function info = get_repo_info(~, repo)
    L = log4m.getLogger;
    switch repo
        case {'Core', 'core', 'CORE'}
            repo_path = Constant.AutoMeasurementCorePath;
        case {'App', 'app', 'APP'}
            repo_path = Constant.AutoMeasurementAppPath;
        otherwise
            error('Unrecoganized Repo Name: %s', repo);
    end
    L.info('MeasurementSession::get_repo_info', sprintf('Repository Info: %s', repo));

    current_folder = pwd;

    cd(repo_path)
    [~, rev]=system('git rev-parse HEAD');
    L.info('MeasurementSession::get_repo_info', sprintf('Repository Revision: %s', rev(1:10)) );

    [~, st]=system('git status -s');
    if ~isempty(st)
        d = Constant.PathDelimiter;
        L.info('MeasurementSession::get_repo_info', sprintf('Current Code is not clean: %s', st));
        diffPath = [Constant.AutoMeasurementDataCenterPath d 'diff'];
        fileName = [repo '_' datestr(datetime('now'), 'yyyymmdd_hhMMss') '.txt'];
        system(sprintf('git diff > %s', [diffPath d fileName]) );
    end

    info.revision = rev;
    info.status = st;

    cd(current_folder);
end